#include<cstdlib>
#include<ctime>
#include<iostream>
#include<fstream>
#include<string>
#include "generator.h"
using namespace std;
//public parameter
#define digit_num 7
#define gnerate_num 1000000

bool rand_generator(){
    ofstream ofile_bin[digit_num], ofile_dec;
    ofile_dec.open("../data/int_1000000.dat");
    srand((int)time(NULL)); // 随机数种子
    //srand(114514); // 固定随机数种子
    for(int i = 0;i < digit_num;i++){
        ofile_bin[i].open("../data/bin_"+to_string(gnerate_num)+"_"+to_string(i)+".dat");
    }

    for (int i = 0;i < gnerate_num;i++){
        //生成[0,127]的随机数并存入十进制数文件中
        int cur_rand_num = rand() % 128;                        
        ofile_dec << " " << cur_rand_num;
        // 将随机数二进制不同位的数存入对应位数的文件中
        for(int j = 0;j < digit_num;j++){
            ofile_bin[j] << " " << bool((cur_rand_num >> j) & 0x01);    //存入对应文件  
        }
    };

    //关闭文件
    ofile_dec.close();
    for(int i = 0;i < digit_num;i++){
        ofile_bin[i].close();
    }
    return true;
}